﻿using System;
using FlyWebFrame.Model;
using System.IO;
using System.Globalization;

namespace FlyWebFrame.Action.admin
{
    public class addnews : baseaction
    {
        public string editTitle;
        public int editcat_id;
        public dynamic view;
        public string name;
        public string viName;
        public string Desc;
        public string ViDesc;
        public string Detail;
        public string ViDetail;
        public string image;
        public int catid;
        public string err;
        public dynamic subcats;
        public string subcat_script;
        public int status, isFeatured;
        public string tag_script;
        public string IsChecked;
        public string IsFeaturedChecked;
        public string eventTime;

        public override void Treat()
        {
            editTitle = "Thêm tin tức";
            contentleft = "/html/admin/editnews.htm";
            page_title += " - Thêm tin tức";
            admin_script = "$('#ad_news').addClass('active');";

            News news = new News();

            // get big cat
            Categories newscat = new Categories();
            view = newscat.GetByTemplate("news.htm").Data;

            if (Form["submit"] == "true")
            {
                name = Form["Name"];
                viName = Form["viName"];
                Desc = Form["Description"];
                ViDesc = Form["ViDescription"];
                Detail = Form["Detail"];
                ViDetail = Form["ViDetail"];
                eventTime = Form["eventTime"];
                string err = "";
                Int32.TryParse(Form["CatId"], out catid);
                if (catid == 0)
                {
                    err += "Bạn chưa chọn danh mục.<br />";
                }
                if (Form["Name"] == "" || Form["Name"].Length > 200)
                {
                    err += "Tiêu đề không được để trống hoặc dài hơn 200 ký tự.<br />";
                }
                if (Form["Description"] == "" || Form["Description"].Length > 500)
                {
                    err += "Mô tả tin tức không được để trống hoặc dài hơn 500 ký tự.<br />";
                }
                if (Form["Detail"] == "" || Form["Detail"].Length > 100000)
                {
                    err += "Chi tiết tin tức không được để trống hoặc dài hơn 50000 ký tự.<br />";
                }
                Fly.Web.Resource.File upfile = new Fly.Web.Resource.File();
                if (upfile.Setup(File["Image"], "upload/news", Fly.Util.Text.Random(20)))
                {
                    while (upfile.IsExisted())
                    {
                        upfile.Setup(File["Image"], "upload/news", Fly.Util.Text.Random(20));
                    }
                    if (upfile.CheckExt(".jpg, .JPG, .png,  .gif, .bmp"))
                    {
                        if (upfile.Save())
                        {
                            Fly.Util.Resource.Image.Resize(upfile.FullPath, 312, 0);
                        }
                        else
                        {
                            err += "<br />Upload ảnh không thành công";
                        }
                    }
                    else
                    {
                        err += "<br />File bạn chọn không phải ảnh";
                    }
                    if (err != "")
                    {
                        admin_script += "$('#err-newsadd').removeClass('hidden');$('#err-newsadd').html('" + err + "');";
                        upfile.Delete();
                    }
                    else
                    {
                        news.image = upfile.FullPath;
                    }
                }
                else {
                    news.image = "upload/news/default.jpg";
                }

                Int32.TryParse(Form["Publish"], out status);
                Int32.TryParse(Form["IsFeatured"], out isFeatured);
                
                if (err != "")
                {
                    admin_script += "$('#err-newsedit').removeClass('hidden');$('#err-newsedit').html('" + err + "');";
                    upfile.Delete();
                }
                else
                {
                    news.title = Form["Name"];
                    news.description = Form["Description"];
                    news.detail = Form["Detail"];
                    news.viTitle = Form["ViName"];
                    news.viDescription = Form["ViDescription"];
                    news.viDetail = Form["ViDetail"];
                    news.catId = catid;
                    news.image = upfile.FullPath;
                    news.status = status;
                    news.isFeatured = isFeatured;
                    try
                    {
                        news.eventTime = DateTime.ParseExact(eventTime, "yyyy-MM-dd HH:mm:ss", new CultureInfo("en-US", true));
                    }
                    catch (Exception ex)
                    {
                        news.eventTime = DateTime.MinValue;
                    }
                    if (news.Add())
                    {
                        admin_script += "$('#msg-newsedit').removeClass('hidden');";
                    }
                    else
                    {
                        admin_script += "$('#err-newsedit').removeClass('hidden');$('#err-newsedit').html('Dữ liệu bạn nhập không hợp lệ');";
                        upfile.Delete();
                    }
                }
            }
        }
    }
}